========================================================================== ++++++++++++++++++ R E A D M E . T X T +++++++++++++++++++++++++++++++ ++++++++++++++ for WinPSKse program source code ++++++++++++++++++++++ ========================================================================== WinPSKse (special edition, no less) is an outgrowth of the original WinPSK written by Moe Wheatley, AE4JY. All of the changes I've made cannot be blamed on AE4JY! Dave Knight, KA1DT -- ka1dt@arrl.net Revision History: ver. 2.23 Changed sound card handling to better deal with overlapping sounds at program startup time. ver. 2.22 Updated to PSKcore.dll V1.10 Changed sound card clock adjust to allow range from -10000 to +10000 to handle the (hopefully) occasional computer who's sound card is exceptionally off frequency. Changed handling of TheirCall handling to allow upper case conversion, lower case conversion, OR no conversion at all. ver. 2.21 Fixed bug in handling of AFC range limits Fixed problem with frequency control up/down buttons in LSB Fixed bug in handling the correct number of Macro Sets Fixed error in handling spectrum/frequency display for psk-20/40 ver. 2.20 Added status bar item to show amount of CPU time free. Added continuous text capture facility. "Switch To" button now has keyboard key F11 alternative. Log file converted to full .adif format. "Rewind" facility added. Duplex Satellite mode added. Added serial number ('sernum') keyword to macros Fixed handling of status bar for non-default fonts ver. 2.10 Added support for up to 8 COM ports. Added Direct Rig Control support for Small Wonder Labs PSK-20 and PSK-40. Added ability to import existing call and macros from version 2.0 and 2.01, so you don't have to re-enter them. Added ability to turn off "fly-by" tool-tips on macro buttons. (See Settings->General Setup->Macros). ver. 2.01 Fixed the display of date/time on status bar. The Status bar will now automatically resize when WinPSKse is resized. Fixed display of spectrum in waterfall display. The baseline of the spectrum didn’t display completely in 2.00. Added control of size of spectrum section of waterfall display. This allows you to set, from the General Setup, the percentage of the waterfall display that is taken up by the spectrum display. Fixed logging bar display problem. Occasionally the logging bar would disappear and not be retrievable. Fixed various text problems when system large fonts are used. Fixed the title bar of the Macro dialog box to include the macro set name. Fixed potential crash relating to usage of COM port for keying. Fixed handling of cursor keys, so they only act on the currently active receive window. Converted "Extract Log" to generate ADIF 1.0 output. Added "Clear All" menu entry to main menu bar. This clears both receive windows and the transmit window. Fixed the transmit sent font used in the receive windows. Also fixed the font initialization. Added an automatic save of the registry values when the general setup dialog OK is pressed. Updated to new dll version 1.07. Updated help file to match 2.01. ver. 2.00 Lots of cleanup and rework Reworked to use PSK31 dll from AE4JY Reworked help file to match ver. 1.4 Fixed a few minor bugs. Added minimal logging support. Expanded context menu (right click after highlighting text in receive window) to make copying easier. Added ability to select either upcasing or downcasing of call. Prior versions always upcased the call. Added 'theirname' macro. The help file contains the descriptions of the new features. Important note for V1.4. If you try or use V1.4 and then decide to go back to a previous version of WinPSKse after doing so, you MUST delete the registry entry for WinPSKse before doing so. The WinPSKse registry entry is upward version compatible; it is NOT downward version compatible. ver. 1.3a Fix problem in handling of rig control port when a selected port is physically removed after having been selected in the dialog. The QPSK lsb mode didn't work correctly and has been fixed. Two other minor internal problems with receive characters and the transmit queue have been fixed. ver. 1.3 Clean up handling of multiple receive windows and allow coordination of receive/transmit based on either. Rework General Setup dialog box. Fixed bug from v1.2, where you couldn't select more than 5 macros. Removed experimental max-likelihood detector, since it doesn't seem to do anything significant. Reworked and updated help file to match 1.3. ver. 1.2: I've numbered the version 1.2 since it is based on his original version 1.1 with the following additional changes: I added the ability to select from multiple sound cards. I needed this because I didn't want to accidentally end up dumping the odd and random Windows sounds on the air when I'm operating PSK31 (And I HAVE heard this happen from some other stations. So by adding a second sound card and using it exclusively for the rig, I minimize the chance of generating the wrong signals on the air. This is selected in the general setup dialog (If you only have one sound card, you'll see the selection is grayed out). I also wanted the ability to select a different number of macros from the default 6 that WinPSK had. In the general setup dialog box you can select any number from 5 to 40. And finally, it seemed nice to be able to copy a signal and also be able to monitor a second signal in the passband at the same time. This seems to be a fairly neat feature, and so far I like it. Using it is straightforward. There is an additional squelch and frequency control on the main display frame which allows this to be controlled. The original WinPSK allowed you to select a frequency by mouse clicking it in the spectrum or waterfall tab. Additionally, you can select a monitoring frequency by RIGHT-clicking in the spectrum or waterfall tab. The right-click leaves the original signal alone (with its yellow cursor), and shows a green cursor which shows where the monitoring is happening. If you're running a VERY slow system that can't keep up with the extra processing required by monitoring, it can be disabled in the general setup dialog. I have some other ideas for changes as well, and they'll probably show up eventually. ========================================================================== ++++++++++++++++++ R E A D M E . T X T +++++++++++++++++++++++++++++++ ++++++++++++++ for WinPSK program source code ++++++++++++++++++++++ ========================================================================== Revision history: ver. 0.1 initial beta release 12-16-99 ver. 0.2 12-17-99 Fixed CWID problem ver. 0.3 12-19-99 Fixed Font save problem, changed settings.dat method made macro titles longer, limit text to 256 ver. 0.4 12-20-99 Fixed accent text, modified macros, added 'start'keyword ver. 1.0 12-30-99 Initial non-beta release Bug fixes: Fixed Missing characters at end of TX Made AFC smoother Fixed screen maximize restoration problem Fixed UTC date problem Fixed problem if Tune button was double clicked Changed CW ID spacing Fixed display zoom problems Fixed(by removing) the memory resource display problem. Fixed problem of version number in registry key Functional Changes: Changed FFT size to 2048 making updates faster(.37 Sec) Zoom limit reduced to 10 Removed useless signal views(3D,I/Q,eye,large vector) Rewrote waterfall display for 10x speedup, made color, and bigger Changed test mode to demo mode and added fast option Added option to turn off tx text echoing in rx window Removed QPSK lsb mode box and moved lsb select into setup Increased macro text size to 2K Placed Macro title text on button and made button larger Changed UTC time/date format Added means to measure and adjust soundcard clock frequency Added an input overload message to spectral displays Added CPU too slow message in signal displays ver. 1.1 1-23-00 maintenance release Bug fixes: Fixed FFT amplitude scaling problem Fixed Fast DemoMode CPU %use bug Fixed "About Box" text problem Functional Changes: Added Narrow AFC mode after Transmit to reduce freq drift Added Setup links to Window's Mixer audio level control Changed CW ID speed/spacing Added Local Time option Moe Wheatley AE4JY www.mindspring.com/~ae4jy ========================================================================== System Requirements: 133MHz Pentium ( works on 486 but MUST have floating point processor) Windows 95/98/NT ( is a 32 bit Windows application ) A soundcard that is supported by Windows. ----------------------------------------------------------------------- For those interested in the source code for this application, it was written Using MicroSoft Visual C++ 6.0. MFC was used for the user interface stuff and a single worker thread is used to generate and process all the data streams. Note: when executing in DEBUG mode, because the optimizer is off, execution speed will slow significantly. For this app it was about 1/3. ======================================================================== VC++ 6.0 Project Source File Descriptions for : WinPSK ======================================================================== ErrorCodes.h // some table include files PskDetTbl.h PSKTables.h PlotData.h fft.cpp //the FFT class fft.h IOCntrl.cpp //DSP thread class IOCntrl.h MacroDlg.cpp // macro setup dlg MacroDlg.h MainFrm.cpp //main frame of program MainFrm.h Perform.cpp //not a class but some global functions for CPU performance measuring Perform.h PlotData.cpp // Signal data plotting class PlotData.h PskDet.cpp // PSK31 detection class PskDet.h PSKMod.cpp // PSK31 modulation class PSKMod.h RcvEditCtrl.cpp //RX text window ctrl RcvEditCtrl.h RcvView.cpp //RX view window RcvView.h SetDlg.cpp //settings dlg SetDlg.h Settings.cpp //program settings stored here Settings.h Sound.cpp // soundcard interface class Sound.h SquelchCtrl.cpp // the squelch control SquelchCtrl.h DemoDlg.cpp // Demo mode dlg DemoDlg.h WinPSK.cpp // main app WinPSK.h WinPSKDoc.cpp // document class for inter-object communications WinPSKDoc.h WinPSKView.cpp // Form view class for most of the controls WinPSKView.h XmitEditCtrl.cpp // TX edit control XmitEditCtrl.h XmitView.cpp //TX view window XmitView.h ///////////////////////////////////////////////////////////////////////////// Other standard files: StdAfx.h, StdAfx.cpp These files are used to build a precompiled header (PCH) file named WSCGen.pch and a precompiled types file named StdAfx.obj. Resource.h This is the standard header file, which defines new resource IDs. Microsoft Developer Studio reads and updates this file. /////////////////////////////////////////////////////////////////////////////